cd "/Users/johnmcandrews/Dropbox (Personal)/pipeline-fieldexperiment/data/replication-dataverse"
capture log close
log using "pipeline_webinar_analysis-for replication.log", replace text

//  program:    pipeline_webinar_analysis-for replication 2020-11-10.do
//  tasks:		Analyze results of the May 2018 pipeline
//				webinar field experiment
//  last modified:  2020-NOV-10 by JM

/*

NOTES

(1) This do-file uses the user-written -estout- package to output the
tables of descriptive statistics and model estimates to RTF files.

(2) This do-file also uses the user-written command -relogit- to implement the
rare events model described in:

King, Gary, and Langche Zeng. 2001. “Logistic Regression in Rare Events Data.” 
Political Analysis 9(2): 137–63.

For instructions on how to install -relogit-, see:
https://gking.harvard.edu/relogit

*/

//  #0
//  program setup

version 14
clear all
set linesize 80

********************************************************************
***OPEN DATA
********************************************************************

use "/Users/johnmcandrews/Dropbox (Personal)/pipeline-fieldexperiment/data/replication-dataverse/pipeline_webinar_analysis-deidentified.dta"

describe, fullnames

codebook, notes

********************************************************************
***COMPUTING MEASURES OF DISAGREEMENT BETWEEN MP PARTY AND CONSTITUENCY
***AND OUTPUTTING DESCRIPTIVE STATISTICS
********************************************************************

//	Note: pos_energy refers to the survey-based measure of public support 
//	for federal energy development assistance derived from the 2015 LPP survey
//	of Canadians (Loewen, Rubenson, and Koop 2018). See manuscript for details.


***DISTRIBUTION OF RESPONDENTS ACROSS RIDINGS

sum pos_energy_riding_n, d

//	mean and sd of the number of pos_energy respondents across ridings

//	reported in main text

***HISTOGRAM OF POS_ENERGY CONSTITUENCY SCORES BY PARTY

hist pos_energy_r_weighted_score, percent xline(0) xtitle("") ///
	name(pipeline_riding_histo,replace) ///
	by(partylbl, total ///
	title("") ///
	note("Note:  Bloc Québécois/Groupe parlementaire québécois (BQ/GPQ), Conservative Party of Canada (CPC), Green Party (Green), Liberal Party (Lib)," "New Democratic Party (NDP), and across all parties (Total).  Overall, mean = .136, sd = .279, N = 331.", size(vsmall)))	

//	outputs a histogram of the constituency mean scores for pos_energy

//	graph reported in main text	
	
//	the descriptive statistics reported in the graph note are taken from
//	the results of -sum pos_energy_r_weighted_score, d- below	
	
graph export pipeline_riding_histo.pdf, name(pipeline_riding_histo) replace


***RELATIONSHIP BETWEEN POS_ENERGY CONSTITUENCY SCORES AND PARTY

reg pos_energy_r_weighted_score ib2.partylbl_num

//	regresses constituency mean on party
//	CPC used as reference category

//	reported in main text


***COMPUTING CONTINOUS MEASURE OF DISAGREEMENT (PER PAP)

sum pos_energy_r_weighted_score, d

//	description of constituency mean variable

gen disagreement = pos_energy_r_weighted_score

//	the original direction of pos_energy_r_weighted_score runs
//	from strongly disagree with building pipelines to strongly agree
//	with building pipelines.  
//	Per the PAP: for NDP, BQ/GPQ, and Green MPs, this is the correct direction--
//	higher scores indicate GREATER DISAGREEMENT WITH PARTY.


replace disagreement = -1*disagreement if partylbl == "Lib"

replace disagreement = -1*disagreement if partylbl == "CPC"

//	Per the PAP: for Lib and CPC MPs, the direction of 
//	pos_energy_r_weighted_score needs to be flipped so that
//	higher scores mean more disagreement with pipelines
//	and therefore GREATER DISAGREEMENT WITH PARTY.

lab var disagreement "Disagreement"



sort partylbl

by partylbl: sum disagreement, d

by partylbl: corr disagreement pos_energy_r_weighted_score

//	confirms that disagreement and pos_energy_r_weighted_score
//	are correlated at -1 for Lib and CPC, but correlated at +1 
//	for all other parties

//	Output descriptive statistics for continuous measure of disagreement

tab disagreement, m

estpost tabstat disagreement, by(partylbl_num) ///
	statistics(mean sd min max n) columns(statistics)	

esttab using pipeline_descriptives.rtf, replace ///
	cells("mean(fmt(2)) sd(fmt(2)) min max count(fmt(0))") ///
	nomtitle nonumber label noobs ///
	title(Descriptive statistics of continuous Disagreement measure, by party)
	
eststo clear

//	reported in Section 3 of SI

***CONVERT RIDING OPINION RESPONSE CATEGORIES FROM STRING TO NUMERIC

//	This is necessary to compute the alternative measures
//	of disagreement below

foreach var of varlist pos_energy_r_str_agree_p ///
	pos_energy_r_agree_p pos_energy_r_neither_p pos_energy_r_disagree_p ///
	pos_energy_r_str_disagree_p {

	dis "destringing `var'"
	
	destring `var', generate(`var'_num) ///
	ignore("%")

list `var' `var'_num in 1/10
	
}	

list pos_energy_r_str_agree_p_num pos_energy_r_agree_p_num ///
	pos_energy_r_neither_p_num pos_energy_r_disagree_p_num ///
	pos_energy_r_str_disagree_p_num pos_energy_r_weighted_score in 1/10

sum pos_energy_r_str_agree_p_num pos_energy_r_agree_p_num ///
	pos_energy_r_neither_p_num pos_energy_r_disagree_p_num ///
	pos_energy_r_str_disagree_p_num


//	Compute descriptives about distribution of responses 
//	across constituencies	
	
count if pos_energy_r_neither_p_num >= 30

dis 126/331

//	In 38% of districts, at least 30% of constituents responded 
//	"Neither Agree Nor Disagree"
	
count if pos_energy_r_str_agree_p_num >= 10 ///
	& pos_energy_r_str_disagree_p_num >= 10

dis 71/331

//	In 21% of districts, at least 10% of constituents responded
//	"Strongly Agree" and another 10% responded "Strong Disagree"	



***COMPUTING 'MEDIAN DISAGREEMENT' MEASURE

//	This is a binary measure of disagreement in
//	which 1 is when the median constituent opposes the MP's party position

gen sdis = pos_energy_r_str_disagree_p_num

gen sdis_dis = pos_energy_r_str_disagree_p_num ///
	+ pos_energy_r_disagree_p_num

gen sdis_dis_nei = pos_energy_r_str_disagree_p_num ///
	+ pos_energy_r_disagree_p_num + pos_energy_r_neither_p_num

gen sdis_dis_nei_ag = pos_energy_r_str_disagree_p_num ///
	+ pos_energy_r_disagree_p_num + pos_energy_r_neither_p_num ///
	+ pos_energy_r_agree_p_num

gen sdis_dis_nei_ag_sag = pos_energy_r_str_disagree_p_num ///
	+ pos_energy_r_disagree_p_num + pos_energy_r_neither_p_num ///
	+ pos_energy_r_agree_p_num + pos_energy_r_str_agree_p_num
	
tab sdis_dis_nei_ag_sag, m

gen pos_energy_r_median = ""

lab var pos_energy_r_median "Position of median constituent"

replace pos_energy_r_median = "Str Disagree" if sdis >= 50

replace pos_energy_r_median = "Disagree" if sdis_dis >= 50 ///
	& sdis < 50

replace pos_energy_r_median = "Neither" if sdis_dis_nei >= 50 ///
	& sdis_dis < 50

replace pos_energy_r_median = "Agree" if sdis_dis_nei_ag >= 50 ///
	& sdis_dis_nei < 50

replace pos_energy_r_median = "Str Agree" if sdis_dis_nei_ag_sag >= 50 ///
	& sdis_dis_nei_ag < 50

tab pos_energy_r_median, m

sort sdis

list sdis sdis_dis sdis_dis_nei sdis_dis_nei_ag sdis_dis_nei_ag_sag ///
	pos_energy_r_weighted_score if pos_energy_r_median == "Disagree"

sort sdis_dis	
	
list sdis sdis_dis sdis_dis_nei sdis_dis_nei_ag sdis_dis_nei_ag_sag ///
	pos_energy_r_weighted_score if pos_energy_r_median == "Neither"

sort sdis_dis_nei	
	
list sdis sdis_dis sdis_dis_nei sdis_dis_nei_ag sdis_dis_nei_ag_sag ///
	pos_energy_r_weighted_score if pos_energy_r_median == "Agree"

gen median_disagreement = .

lab var median_disagreement "Median Disagreement"

//	For BQ/GPQ, Green, and NDP:  MP scores 0 on 
//	median_disagreement if the constituency median is "Disagree"
//	with more federal help for energy sector

replace median_disagreement = 1	if partylbl == "BQ/GPQ" ///
	& pos_energy_r_median == "Agree"

replace median_disagreement = 1	if partylbl == "BQ/GPQ" ///
	& pos_energy_r_median == "Neither"

replace median_disagreement = 0	if partylbl == "BQ/GPQ" ///
	& pos_energy_r_median == "Disagree"

	
replace median_disagreement = 1	if partylbl == "Green" ///
	& pos_energy_r_median == "Agree"

replace median_disagreement = 1	if partylbl == "Green" ///
	& pos_energy_r_median == "Neither"

replace median_disagreement = 0	if partylbl == "Green" ///
	& pos_energy_r_median == "Disagree"


replace median_disagreement = 1	if partylbl == "NDP" ///
	& pos_energy_r_median == "Agree"

replace median_disagreement = 1	if partylbl == "NDP" ///
	& pos_energy_r_median == "Neither"

replace median_disagreement = 0	if partylbl == "NDP" ///
	& pos_energy_r_median == "Disagree"
	
//	For CPC and Lib:  MP scores 0 on 
//	median_disagreement if the constituency median is "Agree"
//	with more federal help for energy sector
	
replace median_disagreement = 0	if partylbl == "CPC" ///
	& pos_energy_r_median == "Agree"

replace median_disagreement = 1	if partylbl == "CPC" ///
	& pos_energy_r_median == "Neither"

replace median_disagreement = 1	if partylbl == "CPC" ///
	& pos_energy_r_median == "Disagree"

	
replace median_disagreement = 0	if partylbl == "Lib" ///
	& pos_energy_r_median == "Agree"

replace median_disagreement = 1	if partylbl == "Lib" ///
	& pos_energy_r_median == "Neither"

replace median_disagreement = 1	if partylbl == "Lib" ///
	& pos_energy_r_median == "Disagree"
	
//	Descriptive statistics of median_disagreement measure

tab median_disagreement, m

estpost tabstat median_disagreement, by(partylbl_num) ///
	statistics(mean sd min max n) columns(statistics)	

esttab using pipeline_descriptives.rtf, append ///
	cells("mean(fmt(2)) sd(fmt(2)) min max count(fmt(0))") ///
	nomtitle nonumber label noobs ///
	title(Descriptive statistics of Median Disagreement measure, by party)
	
eststo clear

//	reported in Section 3 of SI

***COMPUTING 'DISAGREE MORE THAN AGREE' MEASURE

//	This is a binary measure of disagreement  
//	where 1 is when the percentage of constituents who 
//	disagree (strongly or somewhat) with the party position is greater 
//	than the percentage of constituents who agree (strongly or somewhat) 
//	with the party position


gen ttl_disag = pos_energy_r_str_disagree_p_num + pos_energy_r_disagree_p_num

// generates total percentage of constituent that disagrees with pos_energy

gen ttl_ag = pos_energy_r_str_agree_p_num + pos_energy_r_agree_p_num

// generates total percentage of constituent that agrees with pos_energy

gen disag_morethan_ag = .

lab var disag_morethan_ag "Disagree More Than Agree with Pty Position"

//	For BQ/GPQ, Green, and NDP:  MP scores 0 on 
//	disag_morethan_ag if ttl_disag > ttl_ag
//	re: more federal help for energy sector

//	For BQ/GPQ, Green, and NDP:  MP scores 1 on 
//	disag_morethan_ag if ttl_disag < ttl_ag
//	re: more federal help for energy sector

replace disag_morethan_ag = 0 if (ttl_disag > ttl_ag) & partylbl == "BQ/GPQ"

replace disag_morethan_ag = 0 if (ttl_disag > ttl_ag) & partylbl == "Green"

replace disag_morethan_ag = 0 if (ttl_disag > ttl_ag) & partylbl == "NDP"

replace disag_morethan_ag = 1 if (ttl_disag < ttl_ag) & partylbl == "BQ/GPQ"

replace disag_morethan_ag = 1 if (ttl_disag < ttl_ag) & partylbl == "Green"

replace disag_morethan_ag = 1 if (ttl_disag < ttl_ag) & partylbl == "NDP"

//	For CPC and Lib:  MP scores 0 on 
//	disag_morethan_ag if ttl_disag < ttl_ag
//	re: more federal help for energy sector

//	For CPC and Lib:  MP scores 1 on 
//	disag_morethan_ag if ttl_disag > ttl_ag
//	re: more federal help for energy sector

replace disag_morethan_ag = 0 if (ttl_disag < ttl_ag) & partylbl == "CPC"

replace disag_morethan_ag = 0 if (ttl_disag < ttl_ag) & partylbl == "Lib"

replace disag_morethan_ag = 1 if (ttl_disag > ttl_ag) & partylbl == "CPC"

replace disag_morethan_ag = 1 if (ttl_disag > ttl_ag) & partylbl == "Lib"

tab disag_morethan_ag partylbl, m

list ttl_disag ttl_ag if disag_morethan_ag == .

//	6 constituencies have equal percentages of ttl_disag & ttl_ag

//	Consistent with the approach taken for Median Disagreement, where
//	a median response of "Neither" on pos_energy was coded as
//	median_disagree = 1, these 6 constituencies coded as disag_morethan_ag = 1

replace disag_morethan_ag = 1 if ttl_disag == ttl_ag


//	Descriptive statistics of disag_morethan_ag measure

tab disag_morethan_ag, m

estpost tabstat disag_morethan_ag, by(partylbl_num) ///
	statistics(mean sd min max n) columns(statistics)	

esttab using pipeline_descriptives.rtf, append ///
	cells("mean(fmt(2)) sd(fmt(2)) min max count(fmt(0))") ///
	nomtitle nonumber label noobs ///
	title(Descriptive statistics of Disagree More Than Agree measure, by party)
	
eststo clear

//	reported in Section 3 of SI

***COMPUTING 'STRONG DISAGREEMENT' MEASURE

//	This is a continuous measure of disagreement 
//	captured as the percentage of constituents who strongly disagree 
//	with the party position 

gen str_disagreement = .

lab var str_disagreement "Strong Disagreement with Pty Position"

//	For BQ/GPQ, Green, and NDP:  MP score equal to pos_energy_r_str_agree_p_num
//	(i.e., gets % of constituency who strongly agree with pos_energy b/c
//	these parties oppose more federal help for energy sector)

replace str_disagreement = pos_energy_r_str_agree_p_num if partylbl == "BQ/GPQ"

replace str_disagreement = pos_energy_r_str_agree_p_num if partylbl == "Green"

replace str_disagreement = pos_energy_r_str_agree_p_num if partylbl == "NDP" 

//	For CPC and Lib:  MP score equal to pos_energy_r_str_disagree_p_num
//	(i.e., gets % of constituency who strongly disagree with pos_energy b/c
//	these parties support more federal help for energy sector)

replace str_disagreement = pos_energy_r_str_disagree_p_num if partylbl == "CPC"

replace str_disagreement = pos_energy_r_str_disagree_p_num if partylbl == "Lib"

//	Descriptive statistics of disag_morethan_ag measure

tab str_disagreement, m

estpost tabstat str_disagreement, by(partylbl_num) ///
	statistics(mean sd min max n) columns(statistics)	

esttab using pipeline_descriptives.rtf, append ///
	cells("mean(fmt(2)) sd(fmt(2)) min max count(fmt(0))") ///
	nomtitle nonumber label noobs ///
	title(Descriptive statistics of Strong Disagreement measure, by party)
	
eststo clear

//	reported in Section 3 of SI

********************************************************************
***ANALYSES
********************************************************************

//	See PAP for details

//	Note: Z is the treatment indicator
	
//	Cross-tab of DV and treatment

tab accessed Z, chi2

***OLS, NO FIXED EFFECTS, CONTINUOUS MEASURE OF DISAGREEMENT
	
//Model 1:

eststo: reg accessed c.disagreement ib0.Z, robust

//Model 2:

eststo: reg accessed c.disagreement##ib0.Z, robust

esttab using pipeline_OLS_nofixedfx.rtf, replace ///
	se nomtitles label nobaselevels ///
	title(OLS Models using Disagreement measure, No fixed effects)

//	outputs regression results to RTF

//	reported in main text and in Section 4 of SI

eststo clear

***OLS, NO FIXED EFFECTS, MEDIAN DISAGREEMENT MEASURE

//Model 1:

eststo: reg accessed ib0.median_disagreement ib0.Z, robust

//Model 2:

eststo: reg accessed ib0.median_disagreement##ib0.Z, robust

esttab using pipeline_OLS_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(OLS Models using Median Disagreement measure, No fixed effects)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***OLS, NO FIXED EFFECTS, DISAGREE MORE THAN AGREE MEASURE

//Model 1:

eststo: reg accessed ib0.disag_morethan_ag ib0.Z, robust

//Model 2:

eststo: reg accessed ib0.disag_morethan_ag##ib0.Z, robust

esttab using pipeline_OLS_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(OLS Models using Disagree More Than Agree measure, No fixed effects)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***OLS, NO FIXED EFFECTS, STRONG DISAGREEMENT MEASURE

//Model 1:

eststo: reg accessed c.str_disagreement ib0.Z, robust

//Model 2:

eststo: reg accessed c.str_disagreement##ib0.Z, robust

esttab using pipeline_OLS_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(OLS Models using Strong Disagreement measure, No fixed effects)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear


***OLS, FIXED EFFECTS FOR PARTY AND PROVINCE, CONTINUOUS MEASURE OF DISAGREEMENT

//	Model 1:

eststo: reg accessed c.disagreement ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC

//	Model 2:

eststo: reg accessed c.disagreement##ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC


esttab using pipeline_OLS_fixedfx.rtf, replace ///
	se nomtitles label nobaselevels ///
	order(disagreement 1.Z 1.Z#c.disagreement) ///
	title(OLS Models using Disagreement measure, With fixed effects for party and province)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***OLS, FIXED EFFECTS FOR PARTY AND PROVINCE, MEDIAN DISAGREEMENT MEASURE

//	Model 1:

eststo: reg accessed ib0.median_disagreement ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC

//	Model 2:

eststo: reg accessed ib0.median_disagreement##ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC


esttab using pipeline_OLS_fixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	order(1.median_disagreement 1.Z 1.median_disagreement#1.Z) ///
	title(OLS Models using Median Disagreement measure, With fixed effects for party and province)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***OLS, FIXED EFFECTS FOR PARTY AND PROVINCE, DISAGREE MORE THAN AGREE MEASURE

//	Model 1:

eststo: reg accessed ib0.disag_morethan_ag ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC

//	Model 2:

eststo: reg accessed ib0.disag_morethan_ag##ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC


esttab using pipeline_OLS_fixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	order(1.disag_morethan_ag 1.Z 1.disag_morethan_ag#1.Z) ///
	title(OLS Models using Disagree More Than Agree measure, With fixed effects for party and province)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***OLS, FIXED EFFECTS FOR PARTY AND PROVINCE, STRONG DISAGREEMENT MEASURE

//	Model 1:

eststo: reg accessed c.str_disagreement ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC

//	Model 2:

eststo: reg accessed c.str_disagreement##ib0.Z ib4.partylbl_num ib2.provlbl_num, robust

//	ref category for party is Lib; ref category for prov is BC


esttab using pipeline_OLS_fixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	order(str_disagreement 1.Z 1.Z#c.str_disagreement) ///
	title(OLS Models using Strong Disagreement measure, With fixed effects for party and province)

//	outputs regression results to RTF

//	reported in Section 4 of SI

eststo clear

***RARE EVENTS, NO FIXED EFFECTS, CONTINUOUS MEASURE OF DISAGREEMENT

//	Model 1:

eststo: relogit accessed disagreement Z

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation

//	Model 2:

gen disagreementXtreatment = disagreement*Z

eststo: relogit accessed disagreement Z disagreementXtreatment

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation;
//	hence the interaction term is created 'manually'

esttab using pipeline_relogit_nofixedfx.rtf, replace ///
	se nomtitles label nobaselevels ///
	title(Rare Event Models using Disagreement measure, No fixed effects)
	
//	outputs rare events model results to RTF

//	reported in Section 4 of SI

eststo clear


***RARE EVENTS, NO FIXED EFFECTS, MEDIAN DISAGREEMENT MEASURE

//	Model 1:

eststo: relogit accessed median_disagreement Z

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation

//	Model 2:

gen median_disagreementXtreatment = median_disagreement*Z

eststo: relogit accessed median_disagreement Z median_disagreementXtreatment

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation;
//	hence the interaction term is created 'manually'

esttab using pipeline_relogit_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(Rare Event Models using Median Disagreement measure, No fixed effects)
	
//	outputs rare events model results to RTF

//	reported in Section 4 of SI

eststo clear

***RARE EVENTS, NO FIXED EFFECTS, DISAGREE MORE THAN AGREE MEASURE

//	Model 1:

eststo: relogit accessed disag_morethan_ag Z

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation

//	Model 2:

gen disag_morethan_agXtreatment = disag_morethan_ag*Z

eststo: relogit accessed disag_morethan_ag Z disag_morethan_agXtreatment

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation;
//	hence the interaction term is created 'manually'

esttab using pipeline_relogit_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(Rare Event Models using Disagree More Than Agree measure, No fixed effects)
	
//	outputs rare events model results to RTF

//	reported in Section 4 of SI

eststo clear

***RARE EVENTS, NO FIXED EFFECTS, STRONG DISAGREEMENT MEASURE

//	Model 1:

eststo: relogit accessed str_disagreement Z

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation

//	Model 2:

gen str_disagreementXtreatment = str_disagreement*Z

eststo: relogit accessed str_disagreement Z str_disagreementXtreatment

//	note that relogit is an older user-written command and is
//	not updated for Stata's newer factor variable notation;
//	hence the interaction term is created 'manually'

esttab using pipeline_relogit_nofixedfx.rtf, append ///
	se nomtitles label nobaselevels ///
	title(Rare Event Models using Strong Disagreement measure, No fixed effects)
	
//	outputs rare events model results to RTF

//	reported in Section 4 of SI

eststo clear


log close
